All the executions are treated as a command object , it contains undo and redo functions so that user can get their history executions or back to their current execution.